Apache Ant-এ <foreach>
টাস্কটি লুপিং করার জন্য ব্যবহৃত হয়, যেখানে আপনি একটি নির্দিষ্ট তালিকা বা সিলেকশন থেকে একের পর এক আইটেম প্রক্রিয়া করতে পারেন। এটি কার্যকরী যখন আপনাকে একই ধরনের কাজ একাধিক ফাইলে বা মানের উপর চালাতে হয়, যেমন একাধিক ফাইল কপি করা, একাধিক ফোল্ডারে কাজ করা, বা একাধিক টাস্ক চালানো।
<foreach>
টাস্কটি সাধারণত একটি list
বা set
থেকে আইটেম নিয়ে লুপের মাধ্যমে কার্যক্রম সম্পাদন করে।
<foreach list="list_variable" target="target_name" />
এটি একটি মৌলিক উদাহরণ যেখানে একটি ফাইলের তালিকা ব্যবহার করে প্রতিটি ফাইলের উপর কার্যক্রম চালানো হবে।
<project name="ForEachExample" default="processFiles" basedir=".">
<property name="files.list" value="file1.txt,file2.txt,file3.txt" />
<target name="processFiles">
<foreach list="${files.list}" delimiter="," target="processFile"/>
</target>
<target name="processFile">
<echo message="Processing ${item}" />
</target>
</project>
এখানে:
,
) ব্যবহার করে আইটেমগুলো আলাদা করবে।Processing file1.txt
Processing file2.txt
Processing file3.txt
<foreach>
টাস্কটি fileset এর সাথে ব্যবহার করা যেতে পারে, যেখানে আপনি ডিরেক্টরি থেকে ফাইল নির্বাচন করে তাদের উপর কাজ করতে পারেন।
<project name="ForEachFilesetExample" default="processFiles" basedir=".">
<target name="processFiles">
<foreach>
<fileset dir="src" includes="*.java"/>
<target name="processFile"/>
</foreach>
</target>
<target name="processFile">
<echo message="Processing ${file}" />
</target>
</project>
এখানে:
src
ডিরেক্টরিতে 2টি .java ফাইল থাকে):Processing file1.java
Processing file2.java
এটি এমন একটি উদাহরণ যেখানে একটি প্রপার্টির মানের উপর ভিত্তি করে লুপ করা হচ্ছে।
<project name="ForEachPropertyExample" default="processItems" basedir=".">
<property name="items" value="apple,banana,orange" />
<target name="processItems">
<foreach list="${items}" delimiter="," target="processItem" />
</target>
<target name="processItem">
<echo message="Processing item: ${item}" />
</target>
</project>
এখানে:
Processing item: apple
Processing item: banana
Processing item: orange
আপনি <foreach>
টাস্কের মাধ্যমে dynamic property বা ভেরিয়েবলও ব্যবহার করতে পারেন, যেখানে প্রতিটি আইটেমের জন্য ভিন্ন ভিন্ন প্রপার্টি সেট করতে হবে।
<project name="DynamicPropertyExample" default="processDynamicProperties" basedir=".">
<property name="fruits" value="apple,banana,orange" />
<target name="processDynamicProperties">
<foreach list="${fruits}" delimiter="," target="processFruit" />
</target>
<target name="processFruit">
<property name="fruit.name" value="${item}" />
<echo message="Processing ${fruit.name}" />
</target>
</project>
এখানে:
Processing apple
Processing banana
Processing orange
<foreach>
টাস্কটি একাধিক টাস্কের সাথে ব্যবহার করা যেতে পারে যাতে একাধিক কার্যক্রম একের পর এক এক আইটেমের জন্য সম্পাদিত হয়।
<project name="ForEachWithNestedTasks" default="processItems" basedir=".">
<property name="items" value="apple,banana,orange" />
<target name="processItems">
<foreach list="${items}" delimiter="," target="processItem" />
</target>
<target name="processItem">
<echo message="Start processing ${item}" />
<mkdir dir="build/${item}" />
<echo message="Finished processing ${item}" />
</target>
</project>
এখানে:
items
প্রপার্টির মান apple, banana, orange থাকে):Start processing apple
Finished processing apple
Start processing banana
Finished processing banana
Start processing orange
Finished processing orange
এছাড়া, build/apple, build/banana, এবং build/orange ডিরেক্টরি তৈরি হবে।
<foreach>
টাস্কটি Apache Ant-এ একটি শক্তিশালী টুল যা আপনাকে একটি তালিকা, প্রপার্টি, বা ফাইল সেটের মাধ্যমে লুপ চালানোর ক্ষমতা প্রদান করে। এটি আপনাকে একাধিক ফাইল বা প্রপার্টির উপর কাজ করার জন্য একটি অটোমেটেড এবং গতিশীল প্রক্রিয়া তৈরি করতে সাহায্য করে। ForEach Task ব্যবহার করে আপনি একাধিক ফাইল কপি, প্রক্রিয়া, অথবা অন্যান্য টাস্ক একাধিক আইটেমের জন্য চালাতে পারেন, যা আপনার বিল্ড প্রক্রিয়া আরও কার্যকর এবং কাস্টমাইজড করতে সহায়তা করে।
common.read_more